The present invention pertains to programmable logic controllers (PLCs), and more particularly, to PLCs that utilize a sequential interpreter approach in executing their control logic.
The use of PLCs has revolutionized the process control industry. One example of the use of PLCs in process control is in the manufacture of semiconductors. The blending of two or more fluids to form a blended gaseous mixture for combining a semiconductor liquid or gas with a carrier gas for delivery to a fabrication tool requires precise process control. Typically, controlling this type of process by PLC involves using sequence control logic (i.e., opening/closing valves, checking alarm setpoints, etc.) in the PLC and is accomplished via sequential ladder logic programming. This is the standard approach and works well for a fixed control scheme architecture. However, any changes to the control scheme requires ladder logic modifications by an individual with this skill set. Moreover, the memory usage by such fixed control scheme architecture is inefficient.
In particular, classical PLC software utilizes a ladder logic design, which has accounted for a large portion of programming for standard automation applications. The hierarchy of this type of application is shown in FIG. 1. Applications can be constructed which are fairly complex using this programming technique, and the applications which result are able to be maintained by a large cross-section of the process control community, as well as local engineers and technicians with a minimum of training. Although this programming technique is easily constructed, it is not particularly efficient in memory usage when compared with other available languages. There has remained a need to construct code segments that could be used for multiple gas stream control such as first and second input flows of a gas cabinet where the input flows are blended Unfortunately, ladder logic does not easily accomplish this.
By way of example only, the Assignee of the present invention, namely, Air Products & Chemicals, Inc., has used PLCs in its product line and with the release of its Gasguard® 450 (approximately 1990) product line, the technique of using external configurable data to control system operation has been used for gas cabinet-related equipment. Subsequent generations of Gasguard®, including Gasguard® 250, 500, AP2 and AP3, have all used this same method. However, the primary difference is that each of the aforementioned products utilizes an embedded control system of various types and manufacturers.
Attempts at overcoming these problems included developing a code for a PLC application for a mass-customized (MC) gas cabinet but that application rapidly ran out of memory when using this direct programming method. It was suggested to use custom STL (statement list) routines and SCL (structured control language) routines to supplement a basic top-level ladder logic routine in areas that would result in a savings of memory and would allow code segment reuse when possible. One of the areas of the memory usage problem is the standard call sequence in the PLC. Each call to a routine resulted in a large overhead memory usage and a low level STL routine was constructed that allowed multiple-called code to be used without this overhead memory usage. This reduced the memory usage by a significant amount. The second area of the memory usage problem was the lack of timers available in the chosen hardware set. Because of the low number of timers available, a custom timing routine was constructed in STL. Although the inclusion of STL in the application was not desired, it was included because of memory limitations. Many of the analog scaling and alarm functions would be coded using SCL, which, although less desirable than ladder logic, was clearly more desirable than the STL segments. The resulting hierarchy is shown in FIG. 2.
The resulting PLC application software utilized ladder logic for the overall execution loop, with SCL custom sequences and low-level STL service routines. The application configuration data was used to customize the individual application with selected options and alarm limits, etc. However, even with these compromises in programming approach, the application clearly was not able to fit within the constraints of the selected hardware. The resulting code consisted of three separate programming languages and the STL segments were seen as a potential problem for code maintenance.
Thus, there remains a need for a PLC that utilizes the external control data technique on a PLC-based control system which is not typically utilized in this manner.
All references cited herein are incorporated herein by reference in their entireties.